.\" Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
.\" See https://llvm.org/LICENSE.txt for license information.
.\" SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
.\"
.Dd December 19, 2018
.Dt LLVM-OBJDUMP 1
.Os
.Sh NAME
.Nm llvm-objdump
.Nd LLVM object file dumper
.Sh SYNOPSIS
.Nm llvm-objdump
.Op Ar options
.Ar objfile ...
.Sh DESCRIPTION
.Nm
prints the contents of object files and final linked images named on the
command line.
If no file name is specified,
.Nm
will attempt to read from
.Pa a.out .
If
.Pa -
is used as a file name,
.Nm
will process a file on its standard input stream.
.Nm
accepts many of the same command line arguments as GNU objdump.
.Sh OPTIONS
.Ss General Options
.Bl -tag -width indent
.It Fl -aarch64-neon-syntax Ns = Ns Ar value
Choose style of NEON code to emit from AArch64 backend.
.Ar value
may be one of:
.Bl -tag -width indent
.It generic
Generic NEON assembly
.It apple
Apple-style NEON assembly
.El
.It Fl -arch Ns = Ns Ar value
Choose architecture(s) from a Mach-O file to dump
.It Fl -arch-name Ns = Ns ar arch
Target arch to disassemble for.
See
.Fl -version
for available targets.
.It Fl -bind
Display mach-o binding info.
.It Fl -color
Use colored syntax highlighting.
Default autodetect.
.It Fl -disassemble
Display assembler mnemonics for machine instructions.
.It Fl -disassemble-all
Display assembler mnemonics for the machine instruction in all sections.
.It Fl -dsym Ns = Ns Ar file
Use
.Ar file
for debug info.
.It Fl -dwarf Ns = Ns Ar sections
Dump of dwarf debug sections.
.Bl -tag -width indent
.It frames
.Dv .debug_frame
.El
.It Fl -exports-trie
Display mach-o exported symbols.
.It Fl -fault-map-section
Display contents of faultmap section.
.It Fl -filter-print-funcs Ns = Ns Ar functions
Only print IR for functions whose name match
.Ar functions
for all print-[before|after][-all] options.
.It Fl -full-leading-addr
Print full leading address.
.It Fl g
Print line information from debug info if available.
.It Fl h , -headers , -section-headers
Display summaries of the headers for each section.
.It Fl -help
Display available options.
Use
.Fl -help-hidden
for more.
.It Fl -lazy-bind
Display mach-o lazy binding info.
.It Fl -line-numbers
Display source line numbers with disassembly.
Implies disassemble object.
.It Fl -macho
Use MachO specific object file parser.
.It Fl -mattr Ns = Ns Ar attribute ...
Target specific attributes.
.It Fl -mcpu Ns = Ns Ar CPU
Target a specific cpu type.
Use
.Fl mcpu Ns = Ns help
for details.
.It Fl -no-leading-addr
Print no leading address.
.It Fl -no-leading-headers
Print no leading headers.
.It Fl -no-show-raw-insn
When disassembling instructions, do not print the instruction bytes.
.It Fl -offloading
Display the content of the LLVM offloading section.
.It Fl -prefix Ns = Ns Ar PREFIX
When disassembling, add
.Ar PREFIX
to absolute paths.
.It Fl -prefix-strip Ns = Ns Ar LEVEL
When disassembling, strip out
.Ar LEVEL
initial directories from absolute paths. This option has no effect without
.Fl -prefix Ns = Ns PREFIX .
.It Fl -print-imm-hex
Use hex format for immediate values.
.It Fl -private-header
Display only the first format specific file header.
.It Fl -private-headers
Display format specific file headers.
.It Fl r
Display the relocation entries in the file.
.It Fl -raw-clang-ast
Dump the raw binary contents of the clang AST section.
.It Fl -rebase
Display mach-o rebasing info.
.It Fl -reverse-iterate
Reverse iterate.
.It Fl s
Display the content of each section.
.It Fl -section Ns = Ns Ar section
Operate on the specified sections only.
With
.Fl -macho
dump segment,section.
.It Fl -source
Display source inline with disassembly.
Implies disassemble object.
.It Fl -start-address Ns = Ns Ar address
Disassemble beginning at
.Ar address .
.It Fl -stop-address Ns = Ns Ar address
Stop disassembly at
.Ar address .
.It Fl t
Display the symbol table.
.It Fl -triple Ns = Ns Ar triple
Target triple to disassemble for.
See
.Fl -version
for available targets.
.It Fl -unwind-info
Display unwind information.
.It Fl -version
Display the version of this program.
.It Fl -weak-bind
Display mach-o weak binding info.
.It Fl -x86-asm-syntax Ns = Ns Ar syntax
Choose style of code to emit from X86 backend.
.Bl -tag -width indent
.It att
Emit AT&T-style assembly.
.It intel
Emit Intel-style assembly.
.El
.El
.Ss Mach-O Options
There are a number of options specific to the Mach-O format.
These are used in combination with the
.Fl -macho
option.
.Bl -tag -width indent
.It Fl -archive-headers
Print archive headers for Mach-O archives.
.It Fl -archive-member-offsets
Print the offset to each archive member for Mach-O archives.
Requires
.Fl -macho
and
.Fl -archive-headers .
.It Fl -data-in-code
Print the data in code table for Mach-O objects.
.It Fl -dis-symname Ns = Ns Ar symbol
Disassemble just
.Ar symbol 's
instructions.
.It Fl -dylib-id
Print the shared library's id for the dylib Mach-O file.
.It Fl -dylibs-used
Print the shared libraries used for linked Mach-O files.
.It Fl -indirect-symbols
Print indirect symbol table for Mach-O objects.
.It Fl -info-plist
Print the info plist section as strings for Mach-O objects.
.It Fl -link-opt-hints
Print the linker optimization hints for Mach-O objects.
.It Fl -no-symbolic-operands
do not symbolic operands when disassembling.
.It Fl -non-verbose
Print the info for Mach-O objects in non-verbose or numeric form.
.It Fl -objc-meta-data
Print the Objective-C runtime meta data for Mach-O files.
.It Fl -universal-headers
Print Mach-O universal headers.
.El
